FEXP Solver  1.0.0.0
FEXPSerializeData.h
Go to the documentation of this file.
1 // © FEXP, FEXPEnterprise Solver, Ing. Vaclav Rek
3 // Deserialized rough data, appropriate model assembly.
4 // Compiler must support C++ ver.14 and later
6 #ifndef _CFEXPSERIALIZEDATA_H_
7 #define _CFEXPSERIALIZEDATA_H_
8 #include "FEXPCommon.h"
9 #include "FEXPSerialization.h"
11 #include "FEXPElement.h"
12 #include "FEXPSetting.h"
13 
15 using t_FileStructMap = std::map<std::string, std::function<Ptr<ICFEXPSerialDataBase>()>>;
22 
25 {
26 public:
27  ICFEXPSerialDataBase(const std::string & identifier, const t_FileTableStructMap & tab_map);
28  virtual ~ICFEXPSerialDataBase() { }
29 
30  // pure virtual member functions
31  virtual void CreateData (const std::string & tab_key, const std::vector<std::string> & tab_def, const std::vector<std::string> & lines) = 0;
32  virtual bool ContainsTab(const std::string & key) = 0;
33 
34  const std::string GetIdentifier() const;
35 protected:
36  const t_FileTableStructMap & get_cls_map() { return *_tab_map; }
37 
38  std::vector<std::string> split_string(const std::string & str, const std::string & delim);
39  template<typename TValue>
40  TValue convert_string_to(const std::string & txt);
41 private:
42  const std::string _identifier;
43  t_FileTableStructMap const * const _tab_map;
44 };
45 
46 // member functions
48 //--------------------------------------------------------------------------------------
49 template<typename TValue>
50 TValue ICFEXPSerialDataBase::convert_string_to(const std::string & str)
51 //--------------------------------------------------------------------------------------
52 {
53  auto value = str;
54  return CFEXPBaseConvers::StringToNumber<TValue>(CFEXPBaseConvers::StrTrim(value));
55 }
56 
63 #define INPUT_DATA_CALC_DYNAMICS_CONTAINER_NAME "INPUT_CONTAINER_CALC_DYNAMICS"
64 
67  : public ICFEXPSerialDataBase, public ICFEXPDataContainerBase<CFEXPInpDataTabWrapper, ICFEXPSerialDataTableBase, std::string>
68 {
69 public:
71  virtual ~CFEXPCalcDynamic() { }
72  // override of virtual member functions
73  virtual std::string GetContainerName() const override { return INPUT_DATA_CALC_DYNAMICS_CONTAINER_NAME; }
74  virtual void CreateData (const std::string & tab_key, const std::vector<std::string> & tab_def, const std::vector<std::string> & lines) override;
75  virtual bool ContainsTab(const std::string & key) override { return Contains(key); }
76  template<typename TData>
77  typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
78  GetTableData();
79 
81 protected:
82  const static std::string INERROR;
83 private:
84  // [no private members ] -----------------------------
85 };
86 
87 // member functions
89 //--------------------------------------------------------------------------------------
90 template<typename TData>
91 typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
93 //--------------------------------------------------------------------------------------
94 {
95  return GetData<TData>();
96 }
97 
104 #define INPUT_DATA_CALC_MATERIAL_CONTAINER_NAME "INPUT_CONTAINER_CALC_MATERIAL"
105 
108  : public ICFEXPSerialDataBase, public ICFEXPDataContainerBase<CFEXPInpDataTabWrapper, ICFEXPSerialDataTableBase, std::string>
109 {
110 public:
112  virtual ~CFEXPCalcMaterial() { }
113  // override of virtual member functions
114  virtual std::string GetContainerName() const override { return INPUT_DATA_CALC_MATERIAL_CONTAINER_NAME; }
115  virtual void CreateData (const std::string & tab_key, const std::vector<std::string> & tab_def, const std::vector<std::string> & lines) override;
116  virtual bool ContainsTab(const std::string & key) override { return Contains(key); }
117 
118  template<typename TData>
119  typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
120  GetTableData();
121 
123 protected:
124  const static std::string INERROR;
125 private:
126  // [no private members ] -----------------------------
127 };
128 
129 // member functions
131 //--------------------------------------------------------------------------------------
132 template<typename TData>
133 typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
135 //--------------------------------------------------------------------------------------
136 {
137  return GetData<TData>();
138 }
139 
146 #define INPUT_DATA__CALC_CONSTRAIN_CONTAINER_NAME "INPUT_CONTAINER_CALC_CONSTRAIN"
147 
150  : public ICFEXPSerialDataBase, public ICFEXPDataContainerBase<CFEXPInpDataTabWrapper, ICFEXPSerialDataTableBase, std::string>
151 {
152 public:
154  virtual ~CFEXPCalcConstrain() { }
155  // override of virtual member functions
156  virtual std::string GetContainerName() const override { return INPUT_DATA__CALC_CONSTRAIN_CONTAINER_NAME; }
157  virtual void CreateData (const std::string & tab_key, const std::vector<std::string> & tab_def, const std::vector<std::string> & lines) override;
158  virtual bool ContainsTab(const std::string & key) override { return Contains(key); }
159 
160  template<typename TData>
161  typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
162  GetTableData();
163 
165 protected:
166  const static std::string INERROR;
167 private:
168  // [no private members ] -----------------------------
169 };
170 
171 // member functions
173 //--------------------------------------------------------------------------------------
174 template<typename TData>
175 typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
177 //--------------------------------------------------------------------------------------
178 {
179  return GetData<TData>();
180 }
181 
188 #define INPUT_DATA_CALC_LOAD_CONTAINER_NAME "INPUT_CONTAINER_CALC_LOAD"
189 
192  : public ICFEXPSerialDataBase, public ICFEXPDataContainerBase<CFEXPInpDataTabWrapper, ICFEXPSerialDataTableBase, std::string>
193 {
194 public:
195  CFEXPCalcLoad();
196  virtual ~CFEXPCalcLoad() { }
197  // override of virtual member functions
198  virtual std::string GetContainerName() const override { return INPUT_DATA_CALC_LOAD_CONTAINER_NAME; }
199  virtual void CreateData(const std::string & tab_key, const std::vector<std::string> & tab_def, const std::vector<std::string> & lines) override;
200  virtual bool ContainsTab(const std::string & key) override { return Contains(key); }
201 
202  template<typename TData>
203  typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
204  GetTableData();
205 
207 protected:
208  const static std::string INERROR;
209 private:
210  // [no private members ] -----------------------------
211 };
212 
213 // member functions
215 //--------------------------------------------------------------------------------------
216 template<typename TData>
217 typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
219 //--------------------------------------------------------------------------------------
220 {
221  return GetData<TData>();
222 }
223 
230 #define INPUT_DATA_GEOM_NODES_CONTAINER_NAME "INPUT_CONTAINER_GEOM_NODES"
231 
234  : public ICFEXPSerialDataBase, public ICFEXPDataContainerBase<CFEXPInpDataTabWrapper, ICFEXPSerialDataTableBase, std::string>
235 {
236 public:
237  CFEXPGeomNodes();
238  virtual ~CFEXPGeomNodes() { }
239  // override of virtual member functions
240  virtual std::string GetContainerName() const override { return INPUT_DATA_GEOM_NODES_CONTAINER_NAME; }
241  virtual void CreateData (const std::string & tab_key, const std::vector<std::string> & tab_def, const std::vector<std::string> & lines) override;
242  virtual bool ContainsTab(const std::string & key) override { return Contains(key); }
243 
244  template<typename TData>
245  typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
246  GetTableData();
247 
249 protected:
250  const static std::string INERROR;
251 private:
252  // [no private members ] -----------------------------
253 };
254 
255 // member functions
257 //--------------------------------------------------------------------------------------
258 template<typename TData>
259 typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
261 //--------------------------------------------------------------------------------------
262 {
263  return GetData<TData>();
264 }
265 
272 
274 #define INPUT_DATA_GEOM_ELEMENTS_CONTAINER_NAME "INPUT_CONTAINER_GEOM_ELEMENTS"
276  : public ICFEXPSerialDataBase, public ICFEXPDataContainerBase<CFEXPInpDataTabWrapper, ICFEXPSerialDataTableBase, std::string>
277 {
278 public:
280  virtual ~CFEXPGeomElements() { }
281  // override of virtual member functions
282  virtual std::string GetContainerName() const override { return INPUT_DATA_GEOM_ELEMENTS_CONTAINER_NAME; }
283  virtual void CreateData (const std::string & tab_key, const std::vector<std::string> & tab_def, const std::vector<std::string> & lines) override;
284  virtual bool ContainsTab(const std::string & key) override { return Contains(key); }
285 
286  template<typename TData>
287  typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
288  GetTableData();
289 
291 protected:
292  const static std::string INERROR;
293 private:
294  // [no private members ] -----------------------------
295 };
296 
297 // member functions
299 //--------------------------------------------------------------------------------------
300 template<typename TData>
301 typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
303 //--------------------------------------------------------------------------------------
304 {
305  return GetData<TData>();
306 }
307 
314 #define SOLVER_CONFIG_INPUT_DATA_CLUSTER_NODES_CONTAINER_NAME "SOLVER_CONFIG_INPUT_CONTAINER_CLUSTER_NODES"
315 
318  : public ICFEXPSerialDataBase, public ICFEXPDataContainerBase<CFEXPInpDataTabWrapper, ICFEXPSerialDataTableBase, std::string>
319 {
320 public:
323  // override of virtual member functions
324  virtual std::string GetContainerName() const override { return SOLVER_CONFIG_INPUT_DATA_CLUSTER_NODES_CONTAINER_NAME; }
325  virtual void CreateData (const std::string & tab_key, const std::vector<std::string> & tab_def, const std::vector<std::string> & lines) override;
326  virtual bool ContainsTab(const std::string & key) override { return Contains(key); }
327 
328  template<typename TData>
329  typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
330  GetTableData();
331 
333 protected:
334  const static std::string INERROR;
335 private:
336  // [no private members ] -----------------------------
337 };
338 
339 // member functions
341 //--------------------------------------------------------------------------------------
342 template<typename TData>
343 typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
345 //--------------------------------------------------------------------------------------
346 {
347  return GetData<TData>();
348 }
349 
356 #define SOLVER_CONFIG_INPUT_DATA_MODELS_CONTAINER_NAME "SOLVER_CONFIG_INPUT_CONTAINER_FE_MODELS"
357 
360  : public ICFEXPSerialDataBase, public ICFEXPDataContainerBase<CFEXPInpDataTabWrapper, ICFEXPSerialDataTableBase, std::string>
361 {
362 public:
364  virtual ~CFEXPSolverFeModels() { }
365  // override of virtual member functions
366  virtual std::string GetContainerName() const override { return SOLVER_CONFIG_INPUT_DATA_MODELS_CONTAINER_NAME; }
367  virtual void CreateData (const std::string & tab_key, const std::vector<std::string> & tab_def, const std::vector<std::string> & lines) override;
368  virtual bool ContainsTab(const std::string & key) override { return Contains(key); }
369 
370  template<typename TData>
371  typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
372  GetTableData();
373 
375 protected:
376  const static std::string INERROR;
377 private:
378  // [no private members ] -----------------------------
379 };
380 
381 // member functions
383 //--------------------------------------------------------------------------------------
384 template<typename TData>
385 typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
387 //--------------------------------------------------------------------------------------
388 {
389  return GetData<TData>();
390 }
391 
398 #define SOLVER_CONFIG_INPUT_DATA_CALC_BEHAV_CONTAINER_NAME "SOLVER_CONFIG_INPUT_CONTAINER_CALC_BEHAV"
399 
402  : public ICFEXPSerialDataBase, public ICFEXPDataContainerBase<CFEXPInpDataTabWrapper, ICFEXPSerialDataTableBase, std::string>
403 {
404 public:
407  // override of virtual member functions
408  virtual std::string GetContainerName() const override { return SOLVER_CONFIG_INPUT_DATA_CALC_BEHAV_CONTAINER_NAME; }
409  virtual void CreateData (const std::string & tab_key, const std::vector<std::string> & tab_def, const std::vector<std::string> & lines) override;
410  virtual bool ContainsTab(const std::string & key) override { return Contains(key); }
411 
412  template<typename TData>
413  typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
414  GetTableData();
415 
417 protected:
418  const static std::string INERROR;
419 private:
420  // [no private members ] -----------------------------
421 };
422 
423 // member functions
425 //--------------------------------------------------------------------------------------
426 template<typename TData>
427 typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
429 //--------------------------------------------------------------------------------------
430 {
431  return GetData<TData>();
432 }
433 
440 #define CALCULATION_RESULT_DATA_MODELS_CONTAINER_NAME "CALCULATION_RESULT_CONTAINER"
441 
444  : public ICFEXPSerialDataBase, public ICFEXPDataContainerBase<CFEXPInpDataTabWrapper, ICFEXPSerialDataTableBase, std::string>
445 {
446 public:
449  // override of virtual member functions
450  virtual std::string GetContainerName() const override { return CALCULATION_RESULT_DATA_MODELS_CONTAINER_NAME; }
451  virtual void CreateData (const std::string & tab_key, const std::vector<std::string> & tab_def, const std::vector<std::string> & lines) override;
452  virtual bool ContainsTab(const std::string & key) override { return Contains(key); }
453 
454  template<typename TData>
455  typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
456  GetTableData();
457 
459 protected:
460  const static std::string INERROR;
461 private:
462  // [no private members ] -----------------------------
463 };
464 
465 // member functions
467 //--------------------------------------------------------------------------------------
468 template<typename TData>
469 typename std::enable_if<std::is_base_of<ICFEXPSerialDataTableBase, TData>::value, Ptr<TData>>::type
471 //--------------------------------------------------------------------------------------
472 {
473  return GetData<TData>();
474 }
475 
486 {
487 public:
489  static void AssemblyModelFromInputData(CFEXPInpDataContainer & incont, Ptr<ICFEXPDataModelContIntf> & model_cont, const t_ModelDataKey & model_key);
491  // data serialization
494 protected:
495  // [no protected members] -----------------------------
496 private:
497  static void AssemblySettings (Ptr<ICFEXPDataModelContIntf> & model_cont, CFEXPInpDataContainer & incont);
498  static void AssemblyMaterials (Ptr<ICFEXPDataModelContIntf> & model_cont, CFEXPInpDataContainer & incont);
499  static void AssemblyConstrains (Ptr<ICFEXPDataModelContIntf> & model_cont, CFEXPInpDataContainer & incont);
500  static void AssemblyLoads (Ptr<ICFEXPDataModelContIntf> & model_cont, CFEXPInpDataContainer & incont);
501  static void AssemblyFiniteElementNodes(Ptr<ICFEXPDataModelContIntf> & model_cont, CFEXPInpDataContainer & incont, const t_ModelDataKey & model_key);
502  static void AssemblyFiniteElements (Ptr<ICFEXPDataModelContIntf> & model_cont, CFEXPInpDataContainer & incont, const t_ModelDataKey & model_key);
503  // removing structure
504  static void RemoveFiniteElementNodes(Ptr<ICFEXPDataModelContIntf> & model_cont, CFEXPInpDataContainer & incont);
505  static void RemoveFiniteElements (Ptr<ICFEXPDataModelContIntf> & model_cont, CFEXPInpDataContainer & incont);
506  // deserializing calculation data
507  static void DeserilizeFiniteElementData(Ptr<ICFEXPDataModelContIntf> & model_cont, CFEXPInpDataContainer & incont, Ptr<t_SerializedData> ser_data);
508 };
509 
516 
519 {
520 public:
523 protected:
524  // [no protected members] -----------------------------
525 private:
526  // [no private members ] -----------------------------
527 };
528 
535 
538 {
539 public:
541  static void AssemblyResultFromInputData(CFEXPInpDataContainer & incont, Ptr<ICFEXPDataModelContIntf> & model_cont, const t_ModelDataKey & model_key);
542 protected:
543  // [no protected members] -----------------------------
544 private:
545  // [no private members ] -----------------------------
546 };
547 
554 
557 {
558 public:
560 
561  // pure virtual member functions
562  virtual void ProcessLines(const std::vector<std::string> & lines) = 0;
563 protected:
564  std::vector<std::string> split_string(const std::string & str, const std::string & delim);
565 private:
566  // [no private members ] -----------------------------
567 };
568 
575 
578  : public ICFEXPDataWrapperBase<ICFEXPSerialDataBase, std::string>
579 {
580 public:
583  virtual ~CFEXPInpDataWrapper() { }
584 
585  // pure virtual member functions
586  virtual std::string GetKey() override;
587 protected:
588  // [no protected members] -----------------------------
589 private:
590  // [no private members ] -----------------------------
591 };
592 
599 
602 {
603 public:
604  virtual ~CFEXPFEInpContBase() { }
605 protected:
606  // [no protected members] -----------------------------
607 private:
608  // [no private members ] -----------------------------
609 };
610 
617 
620  : public CFEXPFEInpContBase
621 {
622 public:
623  virtual ~ICFEXPDataContIntf() { }
624  virtual void SetData(Ptr<ICFEXPDataModelContIntf> model_cont, const t_ModelDataKey & model_key) = 0;
625  virtual void RmvData(Ptr<ICFEXPDataModelContIntf> model_cont) = 0;
626 
627  // data serialization
629  virtual void DesData(Ptr<ICFEXPDataModelContIntf> model_cont, Ptr<t_SerializedData> ser_data) = 0;
630 protected:
631  // [no protected members] -----------------------------
632 private:
633  // [no private members ] -----------------------------
634 };
635 
642 #define INPUT_DATA_CONTAINER_NAME "INPUT_CONTAINER"
643 
646  : public ICFEXPDataContIntf, public ICFEXPInpDataContBase, public ICFEXPDataContainerBase<CFEXPInpDataWrapper, ICFEXPSerialDataBase, std::string>
647 {
648 public:
649  CFEXPInpDataContainer(const t_FileStructMap & clc_map) : _clc_map(&clc_map) { }
651 
652  template<typename TData>
653  typename std::enable_if<std::is_base_of<ICFEXPSerialDataBase, TData>::value, Ptr<TData>>::type
654  GetInputData();
655 
656  // override of virtual member functions
657  virtual std::string GetContainerName() const override { return INPUT_DATA_CONTAINER_NAME; }
658  virtual void ProcessLines(const std::vector<std::string> & lines) override;
659 
660  // override of virtual member functions
661  virtual void SetData(Ptr<ICFEXPDataModelContIntf> model_cont, const t_ModelDataKey & model_key) override;
662  virtual void RmvData(Ptr<ICFEXPDataModelContIntf> model_cont) override;
663  // data serialization
664  virtual Ptr<t_SerializedData> SerData(Ptr<ICFEXPDataModelContIntf> model_cont) override;
665  virtual void DesData(Ptr<ICFEXPDataModelContIntf> model_cont, Ptr<t_SerializedData> ser_data) override;
666 protected:
667  const t_FileStructMap & get_cls_map() const { return *_clc_map; }
668 private:
669  void process_tables (const std::string & block_key, const std::vector<std::string> & tables);
670  bool contains_file_key_id(const std::string & line, const std::string & key);
671  std::vector<std::string> get_tab_cols_def(const std::vector<std::string> & tab_def);
672 
673  t_FileStructMap const * const _clc_map;
674 };
675 
676 // member functions
678 //--------------------------------------------------------------------------------------
679 template<typename TData>
680 typename std::enable_if<std::is_base_of<ICFEXPSerialDataBase, TData>::value, Ptr<TData>>::type
682 //--------------------------------------------------------------------------------------
683 {
684  return GetData<TData>();
685 }
686 
693 
695 #define SERVER_INPUT_DATA_CONTAINER_NAME "SERVER_INPUT_CONTAINER"
697  : public CFEXPInpDataContainer
698 {
699 public:
701  // override of virtual member functions
702  virtual std::string GetContainerName() const override { return SERVER_INPUT_DATA_CONTAINER_NAME; }
703  virtual void SetData(Ptr<ICFEXPDataModelContIntf> model_cont, const t_ModelDataKey & model_key) override;
705 
706  // data serialization
709 protected:
710  // [no protected members] -----------------------------
711 private:
712  // [no private members ] -----------------------------
713 };
714 
721 #define RESULT_CONTAINER_NAME "RESULT_CONTAINER"
722 
725  : public CFEXPInpDataContainer
726 {
727 public:
728  CFEXResultDataContainer(const t_FileStructMap & clc_map);
729  // override of virtual member functions
730  virtual std::string GetContainerName() const override { return RESULT_CONTAINER_NAME; }
731  virtual void SetData(Ptr<ICFEXPDataModelContIntf> model_cont, const t_ModelDataKey & model_key) override;
733 
734  // data serialization
737 protected:
738  // [no protected members] -----------------------------
739 private:
740  // [no private members ] -----------------------------
741 };
742 
743 #endif // !_CFEXPSERIALIZEDATA_H_
static const std::string INERROR
Definition: FEXPSerializeData.h:292
static const NmspcFileModelData::EFileBlocks ID
Definition: FEXPSerializeData.h:248
virtual bool ContainsTab(const std::string &key) override
Definition: FEXPSerializeData.h:200
Class represents #SOLVER.calc_behaviour block.
Definition: FEXPSerializeData.h:401
CFEXPCalcDynamic()
Definition: FEXPSerializeData.cpp:49
CFEXPCalculationResult()
Definition: FEXPSerializeData.cpp:313
static Ptr< t_SerializedData > SerializeModelCurClcData(CFEXPInpDataContainer &incont, Ptr< ICFEXPDataModelContIntf > &model_cont)
Definition: FEXPSerializeData.cpp:375
virtual bool ContainsTab(const std::string &key) override
Definition: FEXPSerializeData.h:75
#define INPUT_DATA__CALC_CONSTRAIN_CONTAINER_NAME
Definition: FEXPSerializeData.h:146
#define CALCULATION_RESULT_DATA_MODELS_CONTAINER_NAME
Definition: FEXPSerializeData.h:440
virtual ~CFEXPSolverCalcBehaviour()
Definition: FEXPSerializeData.h:406
CFEXPSolverClusterNodes()
Definition: FEXPSerializeData.cpp:226
virtual void CreateData(const std::string &tab_key, const std::vector< std::string > &tab_def, const std::vector< std::string > &lines) override
Definition: FEXPSerializeData.cpp:289
std::enable_if< std::is_base_of< ICFEXPSerialDataTableBase, TData >::value, Ptr< TData > >::type GetTableData()
Definition: FEXPSerializeData.h:428
#define INPUT_DATA_CALC_DYNAMICS_CONTAINER_NAME
Definition: FEXPSerializeData.h:63
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:366
virtual ~ICFEXPSerialDataBase()
Definition: FEXPSerializeData.h:28
const t_FileStructMap & get_cls_map() const
Definition: FEXPSerializeData.h:667
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:408
CFEXPSolverFeModels()
Definition: FEXPSerializeData.cpp:255
virtual void ProcessLines(const std::vector< std::string > &lines)=0
#define INPUT_DATA_GEOM_ELEMENTS_CONTAINER_NAME
Class represents #GEOMETRY.elements block.
Definition: FEXPSerializeData.h:274
It contains functionality required to assembly FEXP solver settings from configuration input data...
Definition: FEXPSerializeData.h:518
virtual void RmvData(Ptr< ICFEXPDataModelContIntf > model_cont)=0
#define INPUT_DATA_CALC_MATERIAL_CONTAINER_NAME
Definition: FEXPSerializeData.h:104
static const NmspcFileModelData::EFileBlocks ID
Definition: FEXPSerializeData.h:80
virtual bool ContainsTab(const std::string &key)=0
CFEXPCalcMaterial()
Definition: FEXPSerializeData.cpp:78
static const t_FileStructMap INP_FILE_BLOCK_CLS_MAP
Definition: FEXPSerializeData.h:488
static void DeserializeModelCurClcData(CFEXPInpDataContainer &incont, Ptr< ICFEXPDataModelContIntf > &model_cont, Ptr< t_SerializedData > ser_data)
Definition: FEXPSerializeData.cpp:406
static const NmspcFileModelData::EFileBlocks ID
Definition: FEXPSerializeData.h:290
CFEXPInpDataContainer(const t_FileStructMap &clc_map)
Definition: FEXPSerializeData.h:649
std::enable_if< std::is_base_of< ICFEXPSerialDataTableBase, TData >::value, Ptr< TData > >::type GetTableData()
Definition: FEXPSerializeData.h:92
CFEXResultDataContainer(const t_FileStructMap &clc_map)
Definition: FEXPSerializeData.cpp:1007
Class represents #SOLVER.input_files block.
Definition: FEXPSerializeData.h:359
virtual ~CFEXPInpDataContainer()
Definition: FEXPSerializeData.h:650
virtual void DesData(Ptr< ICFEXPDataModelContIntf > model_cont, Ptr< t_SerializedData > ser_data) override
Definition: FEXPSerializeData.h:736
#define SOLVER_CONFIG_INPUT_DATA_CLUSTER_NODES_CONTAINER_NAME
Definition: FEXPSerializeData.h:314
const std::string GetIdentifier() const
static void RemoveModelFromCurrentData(CFEXPInpDataContainer &incont, Ptr< ICFEXPDataModelContIntf > &model_cont)
Definition: FEXPSerializeData.cpp:365
EFileBlocks
File block ID.
Definition: FEXPSerialization.h:45
static const std::string INERROR
Definition: FEXPSerializeData.h:376
static const NmspcConfigFileSolverData::EFileBlocks ID
Definition: FEXPSerializeData.h:374
Container for the deserialized input data of FE models.
Definition: FEXPSerializeData.h:645
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:198
static const std::string INERROR
Definition: FEXPSerializeData.h:334
It contains functionality required to deserialization of a result data.
Definition: FEXPSerializeData.h:537
virtual void DesData(Ptr< ICFEXPDataModelContIntf > model_cont, Ptr< t_SerializedData > ser_data) override
Definition: FEXPSerializeData.cpp:908
#define SOLVER_CONFIG_INPUT_DATA_MODELS_CONTAINER_NAME
Definition: FEXPSerializeData.h:356
virtual ~CFEXPGeomNodes()
Definition: FEXPSerializeData.h:238
static const NmspcFileModelData::EFileBlocks ID
Definition: FEXPSerializeData.h:164
CFEXPGeomElements()
Definition: FEXPSerializeData.cpp:194
static const std::string INERROR
Definition: FEXPSerializeData.h:82
CFEXPCalcLoad()
Definition: FEXPSerializeData.cpp:136
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:702
virtual void RmvData(Ptr< ICFEXPDataModelContIntf > model_cont) override
Definition: FEXPSerializeData.h:732
virtual bool ContainsTab(const std::string &key) override
Definition: FEXPSerializeData.h:284
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:240
std::vector< std::string > split_string(const std::string &str, const std::string &delim)
std::enable_if< std::is_base_of< ICFEXPSerialDataTableBase, TData >::value, Ptr< TData > >::type GetTableData()
Definition: FEXPSerializeData.h:134
virtual void CreateData(const std::string &tab_key, const std::vector< std::string > &tab_def, const std::vector< std::string > &lines) override
Definition: FEXPSerializeData.cpp:112
virtual void CreateData(const std::string &tab_key, const std::vector< std::string > &tab_def, const std::vector< std::string > &lines)=0
static const std::string INERROR
Definition: FEXPSerializeData.h:418
static std::string & StrTrim(std::string &str)
Definition: FEXPCommon.cpp:119
Class represents #CALCULATION.loads block.
Definition: FEXPSerializeData.h:191
std::enable_if< std::is_base_of< ICFEXPSerialDataTableBase, TData >::value, Ptr< TData > >::type GetTableData()
Definition: FEXPSerializeData.h:470
virtual void ProcessLines(const std::vector< std::string > &lines) override
Definition: FEXPSerializeData.cpp:843
virtual void SetData(Ptr< ICFEXPDataModelContIntf > model_cont, const t_ModelDataKey &model_key) override
Definition: FEXPSerializeData.cpp:1012
virtual Ptr< t_SerializedData > SerData(Ptr< ICFEXPDataModelContIntf > model_cont) override
Definition: FEXPSerializeData.cpp:899
Class represents #GEOMETRY.nodes block.
Definition: FEXPSerializeData.h:233
virtual bool ContainsTab(const std::string &key) override
Definition: FEXPSerializeData.h:158
virtual void CreateData(const std::string &tab_key, const std::vector< std::string > &tab_def, const std::vector< std::string > &lines) override
Definition: FEXPSerializeData.cpp:260
Definition: FEXPCommon.h:276
#define SERVER_INPUT_DATA_CONTAINER_NAME
Container for the deserialized data from a solver configuration file.
Definition: FEXPSerializeData.h:695
std::enable_if< std::is_base_of< ICFEXPSerialDataTableBase, TData >::value, Ptr< TData > >::type GetTableData()
Definition: FEXPSerializeData.h:218
static void AssemblyModelFromInputData(CFEXPInpDataContainer &incont, Ptr< ICFEXPDataModelContIntf > &model_cont, const t_ModelDataKey &model_key)
Definition: FEXPSerializeData.cpp:346
std::vector< std::string > split_string(const std::string &str, const std::string &delim)
Definition: FEXPSerializeData.cpp:832
virtual ~CFEXPFEInpContBase()
Definition: FEXPSerializeData.h:604
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:730
virtual bool ContainsTab(const std::string &key) override
Definition: FEXPSerializeData.h:368
const t_FileTableStructMap & get_cls_map()
Definition: FEXPSerializeData.h:36
virtual void CreateData(const std::string &tab_key, const std::vector< std::string > &tab_def, const std::vector< std::string > &lines) override
Definition: FEXPSerializeData.cpp:199
TValue convert_string_to(const std::string &txt)
Definition: FEXPSerializeData.h:50
static const NmspcFileModelData::EFileBlocks ID
Definition: FEXPSerializeData.h:206
std::enable_if< std::is_base_of< ICFEXPSerialDataTableBase, TData >::value, Ptr< TData > >::type GetTableData()
Definition: FEXPSerializeData.h:176
#define RESULT_CONTAINER_NAME
Definition: FEXPSerializeData.h:721
ICFEXPSerialDataBase(const std::string &identifier, const t_FileTableStructMap &tab_map)
#define INPUT_DATA_CALC_LOAD_CONTAINER_NAME
Definition: FEXPSerializeData.h:188
CFEXPGeomNodes()
Definition: FEXPSerializeData.cpp:165
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:282
virtual bool ContainsTab(const std::string &key) override
Definition: FEXPSerializeData.h:116
virtual void CreateData(const std::string &tab_key, const std::vector< std::string > &tab_def, const std::vector< std::string > &lines) override
Definition: FEXPSerializeData.cpp:231
CFEXPCalcConstrain()
Definition: FEXPSerializeData.cpp:107
static const std::string INERROR
Definition: FEXPSerializeData.h:124
EFileBlocks
Block ID.
Definition: FEXPSerialization.h:192
static const t_FileStructMap INP_FILE_BLOCK_CLS_MAP
Definition: FEXPSerializeData.h:521
std::enable_if< std::is_base_of< ICFEXPSerialDataTableBase, TData >::value, Ptr< TData > >::type GetTableData()
Definition: FEXPSerializeData.h:386
#define FEXPCOMMON_NOT_IMPLEMENTED_EX
Definition: FEXPCommon.h:144
Class represents #CALCULATION.constrains block.
Definition: FEXPSerializeData.h:149
static const std::string INERROR
Definition: FEXPSerializeData.h:166
virtual void SetData(Ptr< ICFEXPDataModelContIntf > model_cont, const t_ModelDataKey &model_key)=0
CFEXPServerInpDataContainer(const t_FileStructMap &clc_map)
Definition: FEXPSerializeData.cpp:989
virtual void CreateData(const std::string &tab_key, const std::vector< std::string > &tab_def, const std::vector< std::string > &lines) override
Definition: FEXPSerializeData.cpp:54
virtual void SetData(Ptr< ICFEXPDataModelContIntf > model_cont, const t_ModelDataKey &model_key) override
Definition: FEXPSerializeData.cpp:994
Base interface for text file data processing.
Definition: FEXPSerializeData.h:556
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:114
std::enable_if< std::is_base_of< ICFEXPSerialDataTableBase, TData >::value, Ptr< TData > >::type GetTableData()
Definition: FEXPSerializeData.h:344
Container for the deserialized data containing results from numerical simulation. ...
Definition: FEXPSerializeData.h:724
virtual Ptr< t_SerializedData > SerData(Ptr< ICFEXPDataModelContIntf > model_cont) override
Definition: FEXPSerializeData.h:735
virtual void DesData(Ptr< ICFEXPDataModelContIntf > model_cont, Ptr< t_SerializedData > ser_data)=0
Wrapper of an individual elements within the container for deserialized input data.
Definition: FEXPSerializeData.h:577
static const NmspcFileModelData::EFileBlocks ID
Definition: FEXPSerializeData.h:122
virtual ~CFEXPCalcMaterial()
Definition: FEXPSerializeData.h:112
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:73
virtual Ptr< t_SerializedData > SerData(Ptr< ICFEXPDataModelContIntf > model_cont) override
Definition: FEXPSerializeData.h:707
static const NmspcConfigFileSolverData::EFileBlocks ID
Definition: FEXPSerializeData.h:416
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:156
std::map< std::string, std::function< Ptr< ICFEXPSerialDataBase >()> > t_FileStructMap
Definition: FEXPSerializeData.h:15
Definition: FEXPSerializeData.h:696
Class represents #CALCULATION.material block.
Definition: FEXPSerializeData.h:107
virtual ~CFEXPCalcConstrain()
Definition: FEXPSerializeData.h:154
virtual std::string GetKey() override
Definition: FEXPSerializeData.cpp:821
virtual void RmvData(Ptr< ICFEXPDataModelContIntf > model_cont) override
Definition: FEXPSerializeData.cpp:917
Base interface for the block data from input files.
Definition: FEXPSerializeData.h:24
CFEXPInpDataWrapper(Ptr< ICFEXPSerialDataBase > &data)
virtual ~CFEXPInpDataWrapper()
Definition: FEXPSerializeData.h:583
virtual bool ContainsTab(const std::string &key) override
Definition: FEXPSerializeData.h:242
EFileBlocks
File block ID.
Definition: FEXPSerialization.h:122
virtual ~CFEXPGeomElements()
Definition: FEXPSerializeData.h:280
#define SOLVER_CONFIG_INPUT_DATA_CALC_BEHAV_CONTAINER_NAME
Definition: FEXPSerializeData.h:398
static const std::string INERROR
Definition: FEXPSerializeData.h:460
std::enable_if< std::is_base_of< ICFEXPSerialDataTableBase, TData >::value, Ptr< TData > >::type GetTableData()
Definition: FEXPSerializeData.h:260
static const std::string INERROR
Definition: FEXPSerializeData.h:250
CFEXPSolverCalcBehaviour()
Definition: FEXPSerializeData.cpp:284
virtual void DesData(Ptr< ICFEXPDataModelContIntf > model_cont, Ptr< t_SerializedData > ser_data) override
Definition: FEXPSerializeData.h:708
virtual void CreateData(const std::string &tab_key, const std::vector< std::string > &tab_def, const std::vector< std::string > &lines) override
Definition: FEXPSerializeData.cpp:170
Base container interface.
Definition: FEXPSerializeData.h:601
virtual ~CFEXPSolverFeModels()
Definition: FEXPSerializeData.h:364
static void AssemblyResultFromInputData(CFEXPInpDataContainer &incont, Ptr< ICFEXPDataModelContIntf > &model_cont, const t_ModelDataKey &model_key)
Definition: FEXPSerializeData.cpp:1116
virtual ~ICFEXPDataContIntf()
Definition: FEXPSerializeData.h:623
Class represents #RESULTS block.
Definition: FEXPSerializeData.h:443
#define INPUT_DATA_GEOM_NODES_CONTAINER_NAME
Definition: FEXPSerializeData.h:230
Definition: FEXPSerializeData.h:275
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:324
virtual ~CFEXPCalcLoad()
Definition: FEXPSerializeData.h:196
#define INPUT_DATA_CONTAINER_NAME
Definition: FEXPSerializeData.h:642
Base wrapper for items in container.
Definition: FEXPCommon.h:434
std::enable_if< std::is_base_of< ICFEXPSerialDataTableBase, TData >::value, Ptr< TData > >::type GetTableData()
Definition: FEXPSerializeData.h:302
static const t_FileStructMap RES_FILE_BLOCK_CLS_MAP
Definition: FEXPSerializeData.h:540
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:450
virtual void SetData(Ptr< ICFEXPDataModelContIntf > model_cont, const t_ModelDataKey &model_key) override
Definition: FEXPSerializeData.cpp:883
Base container interface focused on processing of a serialized/deserialized data. ...
Definition: FEXPSerializeData.h:619
static const NmspcFileResData::EFileBlocks ID
Definition: FEXPSerializeData.h:458
It contains functionality required to assembly numerical model (for FEA) from input data...
Definition: FEXPSerializeData.h:485
std::string t_ModelDataKey
Definition: FEXPDataContainer.h:13
static const std::string INERROR
Definition: FEXPSerializeData.h:208
virtual ~CFEXPCalculationResult()
Definition: FEXPSerializeData.h:448
virtual void CreateData(const std::string &tab_key, const std::vector< std::string > &tab_def, const std::vector< std::string > &lines) override
Definition: FEXPSerializeData.cpp:83
Class represents #CALCULATION.dynamic block.
Definition: FEXPSerializeData.h:66
virtual ~ICFEXPInpDataContBase()
Definition: FEXPSerializeData.h:559
virtual bool ContainsTab(const std::string &key) override
Definition: FEXPSerializeData.h:452
Definition: FEXPCommon.h:475
virtual bool ContainsTab(const std::string &key) override
Definition: FEXPSerializeData.h:410
std::map< std::string, std::function< Ptr< ICFEXPSerialDataTableBase >()> > t_FileTableStructMap
Definition: FEXPSerializeDataTables.h:17
virtual void RmvData(Ptr< ICFEXPDataModelContIntf > model_cont) override
Definition: FEXPSerializeData.h:704
virtual void CreateData(const std::string &tab_key, const std::vector< std::string > &tab_def, const std::vector< std::string > &lines) override
Definition: FEXPSerializeData.cpp:141
virtual ~CFEXPCalcDynamic()
Definition: FEXPSerializeData.h:71
virtual std::string GetContainerName() const override
Definition: FEXPSerializeData.h:657
virtual void CreateData(const std::string &tab_key, const std::vector< std::string > &tab_def, const std::vector< std::string > &lines) override
Definition: FEXPSerializeData.cpp:318
virtual ~CFEXPSolverClusterNodes()
Definition: FEXPSerializeData.h:322
static const NmspcConfigFileSolverData::EFileBlocks ID
Definition: FEXPSerializeData.h:332
static void AssemblyFromInputData(CFEXPInpDataContainer &incont, Ptr< ICFEXPDataModelContIntf > &model_cont)
Definition: FEXPSerializeData.cpp:1034
virtual Ptr< t_SerializedData > SerData(Ptr< ICFEXPDataModelContIntf > model_cont)=0
virtual bool ContainsTab(const std::string &key) override
Definition: FEXPSerializeData.h:326
std::enable_if< std::is_base_of< ICFEXPSerialDataBase, TData >::value, Ptr< TData > >::type GetInputData()
Definition: FEXPSerializeData.h:681
Class represents #SERVER.init block.
Definition: FEXPSerializeData.h:317